package com.seeyon.apps.kkSample.manager;

import com.seeyon.apps.kkSample.po.SHKKResult;
import com.seeyon.cap4.form.bean.FormBean;
import com.seeyon.cap4.form.bean.FormDataMasterBean;

import java.util.List;
import java.util.Map;

/**
 * 合同文件签署服务API - V3
 */
public interface KKEsignContractFileSignManager {

    /**
     * 签署流程 - 发起类 - 基于文件发起签署
     *
     * @param fileIdList
     * @param formBean
     * @param formDataMasterBean
     * @param appUrl
     * @param OAurl
     * @param headerParams
     * @return
     */
     SHKKResult createByFile(List<String> fileIdList, FormBean formBean, FormDataMasterBean formDataMasterBean, String appUrl, String OAurl, Map<String, Object> headerParams);

    /**
     * 签署流程 - 发起类 - 获取签署页面链接
     *
     * @param appUrl
     * @param headerParams
     * @param signFlowId
     * @param psnAccount
     * @return
     */
    public SHKKResult signUrl(String appUrl, Map<String, Object> headerParams, String signFlowId, String psnAccount);

    /**
     * 签署流程 - 下载类 - 下载已签署文件及附属材料
     *
     * @param appUrl
     * @param headerParams
     * @param signFlowId
     * @return
     */
    public SHKKResult fileDownLoadUrl(String appUrl, Map<String, Object> headerParams, String signFlowId);

    /**
     * 签署流程 - 查询类 - 查询签署流程详情
     *
     * @param appUrl
     * @param headerParams
     * @param signFlowId
     * @return
     */
    public SHKKResult detail(String appUrl, Map<String, Object> headerParams, String signFlowId);
}
